const p1 = new Promise((resolve, reject) => {
  resolve(1);
});
const p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(2);
  }, 500);
});
const p3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject(3);
  }, 500);
});

console.log(p1);
console.log(p2);
console.log(p3);
setTimeout(() => {
  console.log(p2);
}, 1000);
setTimeout(() => {
  console.log(p3);
}, 1000);

p1.then(value => {
  console.log(value);
});
p2.then(value => {
  console.log(value);
});
p3.catch(err => {
  console.log(err);
});
